package com.investment.advisor.service;

import com.investment.advisor.dto.FundDTO;

import java.util.List;

public interface FundService {
    
    List<FundDTO> getAllFunds();
    
    FundDTO getFundById(Long id);
    
    FundDTO getFundByCode(String code);
    
    List<FundDTO> searchFunds(String keyword);
    
    List<FundDTO> getFundsByType(String type);
    
    List<FundDTO> getFundsByRating(Integer rating);
    
    List<FundDTO> getFundsByTypeAndRating(String type, Integer rating);
    
    List<FundDTO> getFundsByTagName(String tagName);
    
    List<FundDTO> getTopPerformingFunds(int limit);
    
    FundDTO createFund(FundDTO fundDTO);
    
    FundDTO updateFund(Long id, FundDTO fundDTO);
    
    void deleteFund(Long id);
    
    void addTagToFund(Long fundId, Long tagId);
    
    void removeTagFromFund(Long fundId, Long tagId);
} 